/**
 * 目标：基于 Web 服务，开发-省份,城市列表数据接口
 * 步骤：
 *  1. 创建 Web 服务
 *  2. 使用 req.url 获取请求的资源路径，读取 json 文件数据返回
 *  3. 其他请求的路径，暂时返回不存在的提示
 *  4. 运行 Web 服务，用浏览器请求地址查看效果
 */

const fs = require('fs')
const qs = require('querystring')
const http = require('http')
const path = require('path')
const server = http.createServer()

try {
  server.on('request', (req, res) => {
    if (req.url === '/api/province') {
      // 请求头
      res.setHeader('content-type', 'application/json;charset=utf-8')
      // 读取数据并返回
      const data = fs.readFileSync(path.join(__dirname, './data/province.json'))
      const provinceStr = data.toString()
      res.end(provinceStr)
      console.log('省份响应成功')
    } else if (req.url.startsWith('/api/city')) {
      // 请求头
      res.setHeader('content-type', 'application/json;charset=utf-8')
      // 分割url,取?后面的值
      const data = req.url.split('?')[1]
      const qsData = qs.parse(data)
      const pname = qsData.pname
      const cityData = fs.readFileSync(path.join(__dirname, 'data', 'city.json'))
      // 二进制转换成字符串再转换成对象
      const cityArr = JSON.parse(cityData.toString())
      // 最终数据
      const resStr = JSON.stringify(cityArr[pname])
      res.end(resStr)
      console.log('城市响应成功')
    }
    else {
      res.setHeader('content-type', 'text/html;charset=utf-8')
      res.end('请求资源不存在')
    }
  })

  server.listen(3000, () => {
    console.log('服务启动成功', 'http://localhost:3000/api/province')
    console.log('http://localhost:3000/api/city?pname=陕西省')
  })

} catch (error) {
  console.log('出错了', error)
}

//dddd